import Vue from 'vue'

/**
 * @input 需翻译的值
 * @source 翻译参考对象或数组
 * @keyName 指定对象属名KEY
 * @valueName 指定对象属名value
 */
Vue.filter("toCase", function (input, source, keyName, valueName) {
    if (!(source instanceof Array) || !source.length) return input;
    for (let e of source) {
        if (e[keyName] == input)
            return e[valueName]
    }
    return input
})

/**
 * @input 需翻译的值
 * @source 翻译参考对象或数组
 * @propName 指定对象字段名
 * @keyName 指定对象属名KEY
 * @valueName 指定对象属名value
 */
Vue.filter("toCaseDynamic", function (input, source,propName, keyName, valueName) {
    if (source == undefined || source.length<=0) {
        return input;
    }
    for (let e in source) {
        if (source[e]!=null&&e==propName){
            for (let f of source[e]) {
                if (f[keyName] == input && input != null){
                    return f[valueName]
                }
            }
        }
    }
    return input
})

/**
 * 威胁值翻译
 */
Vue.filter("toThreat", function (input) {
    if (input) {
        input = parseInt(input)
        if (input <= 4) {
            input = '可忽略威胁'
        } else if (input >= 5 && input <= 8) {
            input = '可忍受威胁'
        } else if (input >= 9 && input <= 10) {
            input = '重大威胁'
        }
    }
    return input
})

/**
 * 数组
 */
Vue.filter("toCaseArr", function (input, source, keyName, valueName) {
  if (input) {
    let _arr = []
    input.split(',').forEach(item => {
      for (let e of source) {
        if (e[keyName] == item)
          _arr.push(e[valueName])
        }
    });
    return _arr.join(',')
  } else {
    return ''
  }
})
